<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <script>
      /**
       * 创建一个Person构造函数
       *   在Per构造函数中，为每一个对象都添加了一个sayName方法，
       *      目前我们的方法是在构造函数内部创建的，
       *        也就是构造函数每执行一次就会创建一个新的sayName方法
       *     也是所有实例的sayName都是唯一的
       * 这样就导致了构造函数执行一次就会创建一个新的方法，
       * 执行1万次就会创建1万个新的方法，而1万个方法都是一样的
       * 这是没有必要的，完全可以使所有对象共享同一个方法
       */
      function Person(name, age, gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
        // 向对象添加一个方法
        this.sayName = function () {
          alert("hello大家好，我是：" + this.name);
        };
      }
      // 创建一个Person的实例
      var per = new Person("孙悟空", 18, "男");
    </script>
  </head>
  <body></body>
</html>
